﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace RayDen.Library.Entity.SceneGraph
{
    public interface INodeVisitor
    {
        void Visit(SceneGraphElement node);
    }

    public delegate void VisitNodeAction<in TNode>(TNode node)
        where TNode : SceneGraphElement;

    public interface ISceneBuilder
    {
        void Add<TSceneElement>(TSceneElement item)
            where TSceneElement : class;
    }

    public interface ISceneBuilderNodeHandler
    {
        ISceneBuilder Owner { get; set; }
    }
}
